import { ContextItem } from './LingmaContext';
import { LingmaSDKTool } from './LingmaSDKTool';

/**
 * 自定义指令
 */
export interface CustomCommand{
  // 用户定义的参数，例如调用GitHubAPI时使用的token
  userDefinedParams: Map<string, string>;
  // 指令执行
  execute: (options: ExecutionOptions, sdkTool: LingmaSDKTool) => Promise<CommandOutput>;
}

// 指令执行时用户输入的选项
export interface ExecutionOptions{
  // 用户输入文本
  userInputText: string;
  // 用户输入的上下文指令（如：#team_docs,#file等）
  associatedContexts: ContextItem[];
  // 圈选的代码片段
  selectedCode: string;
}

// 指令执行的输出结果
export class CommandOutput {
  // 提示词文本
  prompt = '';
}
